This invention generally relates to the field of computing and data communications and, more particularly, to management of communication bus resets used to control data communications between a computing system and one or more peripheral devices.
A computing system (e.g., a host) may be connected to one or more peripheral devices (e.g., data storage devices, printers, and scanners). In a computing environment, an interface mechanism connects a computing system with the peripheral devices. The interface mechanism typically includes a data communication bus to which the devices and the computing system attach. The communication bus allows the computing system and the peripheral devices to communicate in an orderly manner. One or more communication buses may be utilized in a system.
Typically, a control logic device, known as a bus controller, monitors and manages data transmission between the computing system and the peripheral devices by prioritizing the order and the manner in which said devices take over and access the communication buses. In various interface mechanisms, control rules, also known as communication protocols, are implemented to promote the communication of information between computing systems and peripheral devices. For example, Small Computer System Interface or SCSI (pronounced xe2x80x9cscuzzyxe2x80x9d) is an interface mechanism that allows for the connection of multiple (e.g., up to 15) peripheral devices to a computing system. SCSI is widely used in computing systems, such as desktop and mainframe computers.
The advantage of SCSI in a desktop computer is that peripheral devices, such as scanners, CDs, DVDs, and Zip drives, as well as hard drives can be added to one SCSI cable chain. The distinct advantage of SCSI is its use in network servers where several hard drives can be easily configured as fault-tolerant clusters. That is, in the event one drive fails, it can be removed from the SCSI bus, and a new one inserted without loss of data even while the system is still operational. A fault-tolerant communication system is generally designed to detect faults, such as power interruption or removal or insertion of peripherals, so that it can reset the appropriate system components to retransmit any lost data.
SCSI peripherals can be also daisy chained together. In a daisy chain environment an intermediate device has two ports. The first port connects to a computing system or another intermediate device attached to a computing system. The first port allows the device to communicate with the computing system. The second port is either terminated (i.e., not attached to anything) or attached to another device and allows for the computing system and the other device to communicate through the intermediate device. Thus, one or more devices can be attached in a line using a SCSI communication bus.
A SCSI communication bus uses the SCSI protocol for data communications. Hardware implementation of a SCSI communication bus is generally done using a 50 conductor flat ribbon or round bundle cable of characteristic impedance of 100 Ohm. The nominal distance is six meters in single ended mode and 25 meters in differential mode. Currently, a SCSI communication bus includes a bus controller included on a single expansion board that plugs into the host computing system. The expansion board is typically known as a xe2x80x9cSCSI host adapter.xe2x80x9d
In some embodiments, single SCSI host adapters are also available with two controllers that can support up to 30 peripherals. The SCSI host adapters can connect to an enclosure housing multiple devices. In the mid-range to high-end markets, the enclosure may have xe2x80x9cinterface cardsxe2x80x9d or xe2x80x9ccontroller cardsxe2x80x9d providing paths from the host adapter to SCSI busses resident in the enclosure. These controller cards can also provide bus isolation, configuration, addressing, bus reset and fault detection functionalities for the enclosure. The controller card provides a connection path from the host adapter to the SCSI buses resident in the enclosure. The controller cards usually provide configuration, addressing, bus reset, and fault detection functionality for the enclosure.
One or more controller cards may be plugged in or unplugged from the backplane while data communication is in process. The insertion and removal of peripheral devices or controller cards to the backplane while the computing system is operating is referred to as xe2x80x9chot plugging.xe2x80x9d For more information on the SCSI protocol and implementations, please refer to the xe2x80x9cAmerican National Standard for SCSI-2,xe2x80x9d available as Document X3.181-199X from Global Engineering Documents, 2805 McGaw, Irvine, Calif. 92174, hereby incorporated by reference herein in its entirety.
Certain events may cause changes in the electrical load on the communication bus while the computing system and peripheral devices are communicating. For example, interruption of power, attachment or removal of a peripheral device to a communication port, or insertion or removal of one or more controller cards into the backplane, can cause electrical changes in the data and control signals transmitted in the system. These changes can adversely influence the integrity of data communicated over the system buses. To avoid data corruption or data loss, it is needed to reset the buses upon occurrence of one or more of said events. Further, where the system includes a plurality of bus controllers, a method is needed to coordinate the resets and to determine which bus controller should oversee the resets.
Systems and corresponding methods for generating reset signals depending on the status of a controller card in a communication interface are provided. In one aspect of the invention, a communication interface is implemented between a computing system and one or more peripherals. The communication interface includes an interconnection backplane with at least two interface slots for one or more communication buses implemented on the backplane. Each slot receives one or more controller cards and connects the controller cards to one or more communication buses. Each communication bus includes communication ports for attachment to one or more peripheral devices. The controller cards manage the operation of the communication buses.
The controller cards include one or more controllers including logic circuitry for determining the status of the controller card and generating bus reset signals under certain conditions, such as power interruption or change in system configuration. A controller card may be designated to have a primary status (i.e., master) or a non-primary status (i.e., slave). The card with the primary status is responsible for controlling the communication buses by driving and initiating bus addresses if any of the following events occurs: the system""s power is interrupted, a device is inserted or removed from the buses, or a controller card is removed or added to the system. The non-primary card also resets the buses in case of a power interruption and takes over the control of the communication buses when the primary controller card is removed from the system or disabled.
In one embodiment, the system includes a first backplane connector for connecting a controller card to a first communication bus and a second backplane connector for connecting the controller card to a second communication bus. A logic chip, such as an isolator or bridge circuit, is included in one or more of said bus controllers and is capable of electrically isolating or connecting the first connector to the second connector. When the logic chip is enabled it connects the first connector to the second connector, this bridges the first bus and the second bus. However, when it is disabled, the first and second connectors are isolated.
In accordance with one or more aspects of the invention, in a communication system having one or more power supplies, a first bus managed by a first controller card, and a second bus managed by a second controller card, said first and second buses being capable of being bridged by logic circuitry, wherein the logic circuitry generates reset signals to reset first and second buses such that: if a controller card is inserted to or removed from an interface slot then the first and the second bus are reset; if a peripheral device is inserted to or removed from the first bus then if the first controller card has primary status then if the first and second buses are bridged then the first and the second buses are reset; if the first and second buses are isolated then the first bus is reset; if a peripheral device is inserted to or removed from the second bus then if the second controller card has primary status then if the first and second buses are bridged then the first and the second buses are reset; if the first and second buses are isolated then the second bus is reset; and if all power supplies fail then first and second buses are reset.